#pragma once
#include<assert.h>
#include<iostream>
using namespace std;


class Date 
{
public:
	Date(int year = 1, int month = 1, int day = 1)
		:_year(year)
		,_month(month)

	{
		
		_day = day;
	}
	int GetMonthDay(int year,int month);
	//日期+=天数

	Date& operator+=(int day);

	//日期+天数

	Date operator+(int day);

	// 日期-天数

	Date operator-(int day);



	// 日期-=天数

	Date& operator-=(int day);



	// 前置++

	Date& operator++();



	// 后置++

	Date operator++(int);



	// 后置--

	Date operator--(int);



	// 前置--

	Date& operator--();



	// >运算符重载

	bool operator>(const Date& d);



	// ==运算符重载

	bool operator==(const Date& d);



	// >=运算符重载

	bool operator >= (const Date& d);



	// <运算符重载

	bool operator < (const Date& d);



	// <=运算符重载

	bool operator <= (const Date& d);



	// !=运算符重载

	bool operator != (const Date& d);



	// 日期-日期 返回天数

	int operator-(const Date& d);


	void Print()
	{
		cout << _year << "/" << _month << "/" << _day << endl;
	}
private:
	int _year;
	int _month;
	int _day;


};